VirtualBox

VirtualBox

Virtual-box 4.1.4 running Windows 7 under Mac OSX
Original author(s) Innotek
Developer(s) Oracle Corporation
Initial release January 15, 2007 (2007-01-15)
Stable release 4.1.8  (December 19, 2011; 58 days ago (2011-12-19)) [±]
Preview release [±]
Written in C++, C, X86 assembly
Operating system Cross-platform
Size 40–82 MiB depending on platform[1]
Type Virtual machine
License Base Package: GNU General Public License version 2 (Optionally CDDL for most files of the source distribution), "Extension Pack": PUEL
Website www.virtualbox.org

Oracle VM VirtualBox is an x86 virtualization software package, created by software company Innotek GmbH, purchased by Sun Microsystems, and now developed by Oracle Corporation as part of its family of virtualization products. Oracle VM VirtualBox is installed on an existing host operating system as an application; this host application allows additional guest operating systems, each known as a Guest OS, to be loaded and run, each with its own virtual environment.

Supported host operating systems include Linux, Mac OS X, Windows XP, Windows Vista, Windows 7, Solaris, and OpenSolaris; there is also a port to FreeBSD (only OSE version).[2] Supported guest operating systems include versions and derivations of Windows, Linux, BSD, OS/2, Solaris and others.[3] Since release 3.2.0, VirtualBox also allows limited virtualization of Mac OS X guests on Apple hardware.[4]

According to 2010 surveys by LinuxJournal.com,[5] and LifeHacker.com[6], VirtualBox was the most popular virtualization product with over 50% of the vote.

Since version 4.1, Windows guests on supported hardware can take advantage of the recently implemented WDDM driver included in the guest additions, this allows Windows Aero to be enabled along with Direct3D support. Macintosh computers with supported hardware can also enable these new features.

Contents

History

Innotek initially offered the application under a proprietary software license. One version of the product was available at no cost for personal or evaluation use, subject to the VirtualBox Personal Use and Evaluation License (PUEL).[7] In January 2007, VirtualBox Open Source Edition (OSE) was released as free software, subject to the requirements of the GNU General Public License (GPL), version 2.[8]

The original developer, innotek, also contributed to the development of OS/2 and Linux support in virtualization[9] and OS/2 ports[10] of products from Connectix which were later acquired by Microsoft. Specifically, innotek developed the “additions” code in both Microsoft Virtual PC and Microsoft Virtual Server, which greatly improves host-guest OS interactions.

Sun Microsystems acquired innotek in February 2008.[11][12][13]

Oracle Corporation acquired Sun in January 2010 and re-branded the product as "Oracle VM VirtualBox".[14][15][16]

Licensing

With version 4 of Virtualbox, released in December 2010, the core package is free software released under GNU General Public License version 2 (GPLv2). This is the fully featured package, excluding some proprietary components not available under GPLv2. These components provide support for USB 2.0 devices, RDP and PXE boot for Intel cards and are released as a separate "VirtualBox Oracle VM VirtualBox extension pack" under a proprietary Personal Use and Evaluation License (PUEL), which permits use of the software for personal use, educational use, or evaluation, free of charge.[17]

Prior to version 4, there were two different packages of the VirtualBox software. The full package was offered free under the PUEL, with licenses for other commercial deployment purchasable from Oracle. A second package called the VirtualBox Open Source Edition (OSE) was released under GPLv2. This removed the same proprietary components not available under GPLv2.[18][19]

Although VirtualBox has experimental support for Mac OS X guests, the end user license agreement of Mac OS X does not permit the operating system to run on non-Apple hardware, enforced within the operating system by calls to the Apple System Management Controller (SMC) in all Apple machines, which verifies the authenticity of the hardware.[20]

Emulated environment

Multiple guest OSs can be loaded under the host operating system (host OS). Each guest can be started, paused and stopped independently within its own virtual machine (VM). The user can independently configure each VM and run it under a choice of software emulation or hardware assisted emulation if the underlying host hardware supports this. The host OS and guest OSs and applications can communicate with each other through a number of mechanisms including a common clipboard and a virtualized network facility provided. Guest VMs can also directly communicate with each other if configured to do so.

Software emulation

In software emulation mode, VirtualBox adopts a standard software emulation approach. This mode supports 32-bit guest OSs which run in rings 0 and 3 of the Intel ring architecture.

In both cases, VirtualBox uses CSAM and PATM to inspect and patch the offending instructions whenever a fault occurs. VirtualBox also contains a dynamic recompiler, based on QEMU to recompile any real mode or protected mode code entirely (e.g. BIOS code, a DOS guest, or any operating system startup).[21]

Using these techniques, VirtualBox can achieve a performance that is comparable to that of VMware.[22][23]

Hardware-assisted emulation

VirtualBox supports both Intel's VT-x and AMD's AMD-V hardware virtualization. Making use of these facilities, VirtualBox can run each guest VM in its own separate address space; the guest OS ring 0 code runs on the host at ring 0 in VMX non-root mode rather than in ring 1.

Some guests, including 64-bit guests, SMP guests and certain proprietary OSs, are only supported by VirtualBox on hosts with hardware-assisted emulation.

Hardware device emulation

Hard disks are emulated in one of three disk image formats: a VirtualBox-specific container format, called "Virtual Disk Image" (VDI), which are stored as files (with a .vdi suffix) on the host operating system; VMware Virtual Machine Disk Format (VMDK); and Microsoft Virtual PC VHD format. A VirtualBox virtual machine can, therefore, use disks that were created in VMware or Microsoft Virtual PC, as well as its own native format. VirtualBox can also connect to iSCSI targets and to raw partitions on the host, using either as virtual hard disks. VirtualBox emulates IDE (PIIX4 and ICH6 controllers), SCSI, SATA (ICH8M controller) and SAS controllers to which hard drives can be attached.

Both ISO images and host-connected physical devices can be mounted as CD/DVD drives. For example, the DVD image of a Linux distribution can be downloaded and used directly by VirtualBox.

By default VirtualBox provides graphics support through a custom virtual graphics card that is VESA compatible. The Guest Additions for Windows, Linux, Solaris, OpenSolaris, or OS/2 guests include a special video driver that increases video performance and includes additional features, such as automatically adjusting the guest resolution when resizing the VM window[24], or desktop composition via virtualized WDDM drivers .

For an Ethernet network adapter, VirtualBox virtualizes these Network Interface Cards: AMD PCnet PCI II (Am79C970A), AMD PCnet-Fast III (Am79C973), Intel Pro/1000 MT Desktop (82540EM), Intel Pro/1000 MT Server (82545EM), and Intel Pro/1000 T Server (82543GC).[25] The emulated network cards allow most guest OSs to run without the need to find and install drivers for networking hardware as they are shipped as part of the guest OS. By default, VirtualBox uses NAT through which Internet software for end users such as Firefox or ssh can operate. Bridged networking via a host network adapter or virtual networks between guests can also be configured. Up to eight network adapters can be attached simultaneously, but only four are configurable through the graphical interface.

For a sound card, VirtualBox virtualizes Intel HD Audio, Intel ICH AC'97 device and SoundBlaster 16 cards.[26]

A USB 1.1 controller is emulated so that any USB devices attached to the host can be seen in the guest. The closed source extension pack adds a USB 2.0 controller and, if VirtualBox acts as an RDP server, it can also use USB devices on the remote RDP client as if they were connected to the host, although only if the client supports this VirtualBox-specific extension (Oracle provides clients for Solaris, Linux and Sun Ray thin clients that can do this, and have promised support for other platforms in future versions).[27]

Feature set

Since version 3.2:

Since version 4.0:

Since version 4.1

Features only available with the extension pack

Some features require the installation of the closed-source "VirtualBox Extension Pack"[29]:

Virtual Disk Image

VirtualBox uses its own format for storage containers – Virtual Disk Image (VDI). VirtualBox also supports other well-known storage formats[30] such as VMDK (used in particular by VMware) as well as the VHD format used by Microsoft.

VirtualBox's command-line utility VBoxManage includes options for cloning disks and importing and exporting file systems, however, it does not include a tool for increasing the size of the filesystem within a VDI container: this can be achieved in many ways with third-party tools or in the guest OS itself.[31]

VirtualBox has supported Open Virtualization Format (OVF) since version 2.2.0 (April 2009).[32]

See also

References

  1. ^ http://dlc.sun.com/virtualbox/vboxdownload.html
  2. ^ "VirtualBox - FreeBSD Wiki". Wiki.freebsd.org. 2009-06-16. http://wiki.freebsd.org/VirtualBox. Retrieved 2009-07-04. 
  3. ^ "Guest_OSes". VirtualBox. 2009-06-12. http://www.virtualbox.org/wiki/Guest_OSes. Retrieved 2009-07-04. 
  4. ^ VirtualBox 3.2 Beta Virtualizes Mac OS X (On Macs), May 4, 2010, By Kevin Purdy, Lifehacker
  5. ^ "2010 Linux Journal Readers' Choice Awards". http://www.linuxjournal.com/content/readers-choice-awards-2010. 
  6. ^ "LifeHacker.com Best Virtual Machine Application". http://lifehacker.com/5715803/best-virtual-machine-application-virtualbox. 
  7. ^ "VirtualBox_PUEL - VirtualBox". VirtualBox. 2008-09-10. http://www.virtualbox.org/wiki/VirtualBox_PUEL. Retrieved 2009-07-04. 
  8. ^ "GPL". VirtualBox. http://www.virtualbox.org/wiki/GPL. Retrieved 2009-07-04. 
  9. ^ Ronny Ong   View profile    More options. "Additions Version History - microsoft.public.virtualpc | Google Groups". Groups.google.com. http://groups.google.com/group/microsoft.public.virtualpc/msg/1dbfbc16da8ac9af. Retrieved 2009-07-04. 
  10. ^ "Connectix Announces First Virtual Computing Solution for OS/2 Users; Virtual PC Lets Enterprises Run OS/2 and Windows Concurrently on a Single PC | Business Wire | Find Articles at BNET". Findarticles.com. 2002-07-01. http://findarticles.com/p/articles/mi_m0EIN/is_2002_July_1/ai_88090458. Retrieved 2009-07-04. 
  11. ^ "Sun Microsystems Announces Agreement to Acquire innotek, Expanding Sun xVM Reach to the Developer Desktop" (Press release). Sun Microsystems. February 12, 2008. http://www.sun.com/aboutsun/pr/2008-02/sunflash.20080212.1.xml. Retrieved 2008-02-12. 
  12. ^ "E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy". Ecommercetimes.com. http://www.ecommercetimes.com/story/61661.html. Retrieved 2009-07-04. 
  13. ^ "Sun Welcomes Innotek". Sun Microsystems, Inc.. http://www.sun.com/software/innotek/. Retrieved 2008-02-26. "On February 20 Sun completed the acquisition of innotek" 
  14. ^ "Oracle and Virtualization". Oracle Corporation. http://www.oracle.com/us/technologies/virtualization/index.html. Retrieved 2010-01-30. 
  15. ^ "VirtualBox Joins Oracle's Enterprise Virtualization Portfolio". systemnews. February 25, 2010. http://sun.systemnews.com/articles/144/4/Virtualization/22866. Retrieved March 6, 2010. 
  16. ^ Hawley, Adam (February 26, 2010). "The Oracle VM Product Line Welcomes Sun!". Oracle Virtualization Blog. Oracle Corporation. http://blogs.oracle.com/virtualization/2010/02/the_oracle_vm_product_line_wel.html. Retrieved March 6, 2010. 
  17. ^ "VirtualBox_PUEL". VirtualBox. 2010-04-19. http://www.virtualbox.org/wiki/VirtualBox_PUEL. Retrieved 2011-04-20. 
  18. ^ "Licensing FAQ". VirtualBox. http://www.virtualbox.org/wiki/Licensing_FAQ. Retrieved 2008-12-16. 
  19. ^ "Editions". VirtualBox. http://www.virtualbox.org/wiki/Editions. Retrieved 2009-07-04. 
  20. ^ Interview with Andy Hall, Product Manager for Oracle VM VirtualBox
  21. ^ "VirtualBox Manual, Section 10.4 Details about software virtualization". VirtualBox. http://www.virtualbox.org/manual/ch10.html#idp13728752. Retrieved 2011-04-25. 
  22. ^ Dr. Oliver Diedrich (2007-01-15). "heise open - 15.01.07 - VirtualBox". Heise.de. http://www.heise.de/open/artikel/83678. Retrieved 2009-07-04. 
  23. ^ Jason Perlow (2010-05-21). "Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1". ZDNET. http://www.zdnet.com/blog/perlow/virtualization-smackdown-2-oracle-vm-virtualbox-32-vs-vmware-workstation-71/13020. Retrieved 2010-05-24. 
  24. ^ "Chapter 4. Guest Additions". VirtualBox. http://www.virtualbox.org/manual/ch04.html#id448025. Retrieved 2011-01-17. 
  25. ^ "Chapter 6. Virtual networking". VirtualBox. http://www.virtualbox.org/manual/ch06.html#nichardware. Retrieved 2011-01-17. 
  26. ^ "Chapter 3. Configuring Virtual Machines". VirtualBox. http://www.virtualbox.org/manual/ch03.html#settings-audio. Retrieved 2011-01-17. 
  27. ^ "VirtualBox 4.1.4 Manual - Chapter 7 Remote Virtual Machines". Oracle. 2011-10-03. http://www.virtualbox.org/manual/ch07.html#usb-over-rdp. Retrieved 2011-11-19. 
  28. ^ "Python API to the VirtualBox VM". Sun Microsystems. 2008-09-05. http://blogs.sun.com/nike/entry/python_api_to_the_virtualbox. Retrieved 2008-09-06. 
  29. ^ http://www.virtualbox.org/wiki/Downloads
  30. ^ Guide/Virtual storage "Virtual storage". VirtualBox. 2009-10-30. http://www.virtualbox.org/wiki/User Guide/Virtual storage. Retrieved 2009-10-30. 
  31. ^ "Howto increase hard disk size after installing a guest OS". End user forums for VirtualBox. 2009-10-30. http://forums.virtualbox.org/viewtopic.php?f=1&t=364&start=30. Retrieved 2009-10-30. 
  32. ^ "VirtualBox changelog". http://www.virtualbox.org/wiki/Changelog-2.2. Retrieved 2010-02-18. 

External links